Software product management
Software product management is the process of managing software that is built and implemented as a product, taking into account life-cycle considerations and generally with a wide audience. It is the discipline and business process which governs a product from its inception to the market or customer delivery and service in order to generate biggest possible value to the business [1]. This is in contrast to software that is delivered in an ad-hoc manner, typically to a limited clientele, e.g. service.
Software products
A software product is typically a single application or suite of applications built by a software company to be used by *many* customers, businesses or consumers. The mass-market notion differs from custom software built for the use of a single customer by consulting firms like IBM Global Services or Accenture.
Examples of business software products include the Oracle 10g database by Oracle Corporation, SAP R/3 ERP software by SAP AG, QuickBooks by Intuit, etc.
Examples of consumer software products include Microsoft Office by Microsoft, TurboTax by Intuit. Since the late 1990s, many software products have been offered as a service, so that the customers - businesses or end consumers - run the same application without installing the software on their computers. Examples include Customer Relationship Management (CRM) software by Salesforce.com, consumer shopping comparison software by Shopping.com, various web search tools offered by Google, Yahoo!, and the auction marketplace by eBay. Even though these applications are not packaged in media that can be touched and felt, they are software products nonetheless, and require the same product management rigor as packaged software do. In fact, they do require more rigor since the product manager must now be concerned with operational concerns such as service availability and third-party relations.
The need for software product management
To develop, sell and support a successful software product a business needs to understand its market, identify the opportunity, develop and market an appropriate piece of software. Hence the need for product management as a core business function in software companies [2].
Hardware companies may also have a need for software product management, because software is part of the delivery: for example when providing operating systems or software embedded in a device.
The role of software product manager
The product manager leads and manages one or several products from the inception to the phase-out in order to maximize business value. He is working with marketing, sales, engineering, finance, quality, manufacturing and installation to make his products a business success. He has the business responsibility beyond the single project. He determines what to make and how to make it and is accountable for the business success within an entire portfolio. He approves roadmap and content and determines what and how to innovate. He is responsible for the entire value chain of a product following the life cycle and asks: What do we keep, what do we involve, what do we stop?
Here is a short list of topics how software product managers can deliver better results[1]:
- Behave like an “embedded CEO”
- Drive your strategy and portfolio from market and customer value
- Be enthusiastic on your own product
- Have a profound understanding of your markets, customers and portfolio
- Measure your contribution on sales (top-line) and profits (bottom-line)
- Periodically check assumptions such as business cases
- Take risks, and manage them
- Foster teamwork based on lean processes
- Insist on discipline and keeping commitments
- Be professional in communication, appearance, behaviors …
Content of software product management
Software product management covers all steps from inception of a product to its end of life. It consists of five major phases in the product life-cycle, namely:
- Strategy
- Concept
- Market Entry
- Development
- Evolution
Within these five phases it deals with the following aspects of a software product within a software and/or hardware company:
- Idea generation (e.g. on whiteboards) for a new software product, or for the next version of an existing product.
- Collection and prioritization (see below) of business and/or market requirements from prospects, customers of earlier versions of the product, domain experts, technology visionaries, market experts, products / solutions from competing vendors, etc.
- Crafting of Marketing Requirements Documents, or MRDs, which synthesize the requirements / needs of various stakeholders as outlined above.
- Using the MRD as a basis, come up with a product requirements document or PRD, as an input to the engineering team to build out the product. A PRD is generally not the same as a functional specification since it specifies what a product should do, but not how the product should do it. Frequently, a PRD can be a collection of UML Use Cases, UML Activity Diagrams, HTML mockups, etc. It can have other details such as the software development environment, and the software deployment environment (client-server, web, etc.).
- Deliver the PRD to the software engineering team, and manage conflicts between the business units, the sales teams, and the engineering teams, as it applies to the software products to be built out.
- Once the software development gets into build / release cycle, conduct acceptance tests.
- Deal with the delivery of the product. This can vary from demonstrating the product to customers using web-based conferencing tools, to building product demonstrations, to other placement and promotion tactics. Frequently, in Silicon Valley, these two aspects of marketing, and sometimes also pricing, are dealt with by Product Marketing Managers, as opposed to Product Managers.
- Once the product is deployed at a customer site, solicit customer feedback, report software bugs, and pass these on back to engineering for subsequent build / release cycles, as the product stabilizes, and then matures.
- Perform competitive analysis as to how this product is behaving in the market, vis-a-vis other products catering to the same / similar customer segments. In the software space, this might require the product manager to take the opinion of analysts, who can come from name brand market research firms like IDC, Forrester Research, and Gartner Group.
- Solicit more features and benefits from the users of the software product, users of competitive products, and from analysts and craft / synthesize these requirements for subsequent product build / release cycles, and pass them on to the software engineering team.
The above tasks are not sequential, but can co-exist. For Product Managers to be efficient in the above tasks, they have to have both engineering and marketing skills. Hence, frequently, Silicon Valley firms prefer engineers who are also MBAs to do software product management.
Prioritization
A key aspect of Product Management is the correct prioritization of enhancements. Here's a method that works well (borrowed and adapted from Joel Spolsky):
- Identify the panel, i.e. whose opinion you are going to seek
- Make a list of all items
- Estimate the effort required (either in days or in money) - this needs to be very rough and approximate
- Add up the total effort, call it E
- Give the panel members a budget of 0.5 × E each - they can place this any way they like, including all on a single item. You should disclose the rough estimates to the panel, as it may influence their vote.
- Rank the items in terms of the ratio Votes / Estimate
- Do as many of the items as the actual budget allows, respecting the sequence
See also
References
- Conde, Dan (2002). Software Product Management: Managing Software Development from Idea to Product to Marketing to Sales (Execenablers). Aspatore Books. ISBN 1587622025.
- Dver, Alyssa S. (2003). Software Product Management Essentials. Anclote Press. ISBN 0929652010.
External links